# -*- coding = utf-8 -*-
# @Time : 2022/11/8 15:33
# @Author :Henry L
# @File : Clock.py
# @Software : PyCharm
import datetime
import os
import time
import schedule

def is_during_time():
    """
    检查当前时间是否在凌晨1点至凌晨5点之间。
    如果是，则休眠直到5点。
    """
    now_time = datetime.datetime.now()
    start_time = datetime.datetime.now().replace(hour=0, minute=45, second=0)
    end_time = datetime.datetime.now().replace(hour=5, minute=30, second=0)

    if start_time <= now_time < end_time:
        # 计算剩余时间直到5点
        remaining_time = (end_time - now_time).total_seconds()
        print(f"It's sleep time until {end_time}. Sleeping for {remaining_time} seconds.")
        time.sleep(remaining_time)
        # 当醒来时，立即执行一次tick以避免错过
        tick()

def tick():
    print("Start Process the time is : %s" % datetime.datetime.now())
    os.system("{} {}".format('python', "Three_process.py"))

if __name__ == '__main__':
    while True:
        is_during_time()  # 检查是否在休眠时间
        schedule.every(65).minutes.do(tick)
        # 在休眠时间外，每分钟检查一次任务
        if datetime.datetime.now().hour >= 5 or datetime.datetime.now().hour < 1:
            schedule.run_pending()
            time.sleep(60)  # 每60秒检查一次
        else:
            # 在休眠时间内，减少检查频率以节省资源
            time.sleep(3600)  # 每小时检查一次